Speed and rotor time constant estimation for torque control of an induction motor

ABSTRACT

A speed sensorless controller for an induction motor with rotor resistance estimation, using stator currents and voltages. The rotor resistance and speed estimation are obtained as a solution of a linear algebraic system with pseudo current and voltage signals and their observable derivatives as inputs. The proposed scheme provides accurate, real-time estimation of the speed and rotor time constants in all motor operational modes. It can also be used for real-time motor tuning if a speed signal is available.

TECHNICAL FIELD

The invention relates to powertrains having an electric induction motor, including hybrid powertrains that include an internal combustion engine.

BACKGROUND ART

U.S. Pat. No. 6,014,006 discloses a method for controlling torque output for an electric induction motor using estimations of rotor flux angle and rotor speed. The speed is estimated based on motor dynamics represented by equations for which the speed is a control variable to be estimated, the other variables being measurable. Rotor flux is estimated directly from rotor speed using a set of motor control equations, and rotor flux angle is determined from rotor flux for controlling motor torque.

The accuracy of speed estimation of an induction motor without rotational transducers can be affected by rotor resistance variation during operation.

A rotor parameter identification technique for the purpose of updating control gains of an induction motor vector controller by introducing a separate high frequency carrier signal is described by Matsuo et al in a paper entitled “A Rotor Parameter Identification Scheme For Vector-Controlled Induction Motor Drives”, (IEEE Transactions On Industry Applications, Vol. IA-21, No. 4, May/June 1985). An adaptive scheme for simultaneous speed and rotor resistance identification derived by using Lyapunov's function is analyzed by Kubota et al in a paper entitled “Speed Sensorless Field-Oriented Control of Induction Motor with Rotor Resistance Adaptation” (IEEE Transactions on Industry Applications, Vol. 30, No. 5, 1994). The approach of Kubota et al is implemented by superimposing AC components on the field current command.

Robust nonlinear control of the speed of induction motors that uses measurements of the rotor position and stator current with on-line adaptation of the rotor resistance is described by Aloliwi et al in a paper entitled “Robust Speed Control of Induction Motors Using Adaptive Observer” (Proceedings of American Control Conference, pp. 931-935, June 1999). A paper written by Shishkin et al entitled “Discrete-Time Method for Robust Global Stabilization of Induction Motor” (Proceedings of American Control Conference, 1999), describes how the rotor resistance is updated at a prescribed instant by minimizing a nonlinear scalar function, which is monotonic and has a well defined solution when ω and/or load are small.

Zheng et al describe in a paper entitled “Adaptive Flux and Speed Estimation for Induction Motors” (Proceedings of American Control Conference, June 1999), an adaptive estimator for rotor resistance that considers the rotor speed and rotor resistance as slowly varying unknown parameters of a model reference adaptive system. Under persistent excitation, it is explained by Zheng et al that estimated flux and rotor speed converge to their true values.

A paper by Bondarko and Zaremba (one of the inventors of the present invention), entitled “Speed and Flux Estimation for an Induction Motor Without Position Sensor” (Proceedings of American Control Conference, June 1999) describes a speed sensorless torque control of an induction motor.

DISCLOSURE OF INVENTION

The rotor resistance observer used in the present invention is a further development of the approach, mentioned above, for speed sensorless torque control of electric motors. By assuming that rotor resistance and speed variation are slow, compared to flux and current changes, a linear algebraic system is developed with rotor resistance and speed being the only unknown parameters. The inputs to the observer are pseudo current and pseudo voltage signals and their observable derivatives. The rotor resistance and speed observer is complemented with an accurate, discrete time flux observer, which is based on an analytical solution of the rotor flux equation over a sampling interval. Knowing flux estimation, a standard field orientation control technique is applied.

The method and strategy of the invention provides estimates of rotor resistance and speed for motor torque control by computing a rotor slip gain as a function of measurable stator current and voltage, computing orientation and magnitude of rotor flux as a function of stator current, estimated speed and rotor slip gain, computing rotor slip speed as a function of slip gain and calculating electrical rotor speed as a function of the number of pole pairs, estimated rotor speed and rotor slip speed.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic block diagram of the speed sensorless torque control system of the invention, wherein rotor resistance is estimated;

FIG. 2 is a schematic diagram of a typical automotive vehicle hybrid powertrain, including an electric motor, that can be controlled by the improved method of the invention;

FIG. 3a is a plot of engine torque in a hybrid powertrain versus time;

FIG. 3b is a plot of electric motor torque in a hybrid powertrain versus time;

FIG. 4a is a plot of motor rotor speed estimation versus time;

FIG. 4b is a plot of motor rotor constant estimation for a step rotor resistance function;

FIG. 5 is a schematic block diagram of the observer of rotor speed and resistance;

FIG. 6 is a schematic filter circuit for the motor voltage and current;

FIGS. 7a and 7 b is a schematic block diagram of the rotor speed observer;

FIG. 8 is a schematic block diagram of the rotor time constant observer;

FIG. 9a is a plot of rotor speed estimation versus time;

FIG. 9b is a plot of rotor constant estimation versus time;

FIG. 10a is another plot of rotor speed estimation versus time with higher speed amplitude; and

FIG. 10b is a plot of the rotor constant estimation versus time.

BEST MODE FOR CARRYING OUT THE INVENTION

The dynamic model of an induction machine with a stationary stator is as follows: $\begin{matrix} {\frac{\Theta}{t} = \omega} & (1) \\ {\frac{\omega}{t} = {{{- \frac{3}{2}}\frac{n_{p}M}{m\quad L_{r}}\lambda_{r}^{T}{Ji}_{s}} - {T_{L}/m}}} & (2) \\ {\frac{\lambda_{r}}{t} = {{\left( {{{- \frac{R_{r}}{L_{r}}}I} + {n_{p}\omega \quad J}} \right)\lambda_{r}} + {\frac{R_{r}}{L_{r}}{Mi}_{s}}}} & (3) \\ {{\frac{i_{s}}{t} = {{{- \frac{M}{\sigma \quad L_{s}L_{r}}}\left( {{{- \frac{R_{r}}{L_{r}}}I} + {n_{p}\omega \quad J}} \right)\lambda_{r}} - {\frac{1}{\sigma \quad L_{s}}\left( {R_{s} + \frac{M^{2}R_{r}}{L_{r}^{2}}} \right)i_{s}} + {\frac{1}{\sigma \quad L_{s}}v_{s}}}}{{{{where}\quad I} = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}},{J = {\begin{pmatrix} 0 & {- 1} \\ 1 & 0 \end{pmatrix}.}}}} & (4) \end{matrix}$

Here, the variables Θ and ω are, respectively, the angular position and speed of the rotor; and λ_(r), i_(s) and v_(s) are rotor flux, stator current and voltage in the stator frame (α,β), respectively.

The parameters R_(r) and R_(s) are the rotor and stator resistances, M is the mutual inductance, L_(r)=M+L_(lr) and L_(s)=M+L_(ls) are the rotor and stator inductances, σ=1−M²/L_(s)L_(r) is the leakage parameter, m is the moment of inertia of the motor, n_(p) is the number of pole pairs, and T_(L) is an external torque load.

For vector control of the induction motor, it is necessary to measure or estimate the orientation of the rotor flux, which allows separation of the problems of flux control and reference torque tracking. The speed sensorless field orientation control scheme of the induction motor, which includes rotor speed, rotor resistance and rotor flux observers, is shown in FIG. 1. The rotor resistance and rotor speed observer uses pseudo voltage and pseudo current signals as inputs, and the rotor flux observer provides information about electrical field angle to a field orientation controller. In the field orientation block, the current is regulated in a rotor flux related reference system around the reference values: $\begin{matrix} {i_{ds}^{*} = {\frac{\lambda_{dr}^{*} + {\tau_{r}\lambda_{dr}^{*}}}{M}\quad {and}}} & (5) \\ {{i_{qs}^{*} = {\frac{2}{3n_{p}}L_{r}\frac{T_{ref}^{*}}{M\quad \lambda_{dr}^{*}}}},} & (6) \end{matrix}$

where T*_(ref) and λ*_(dr) are the reference values of torque and rotor flux.

An observer for rotor speed and rotor resistance using only the stator current and voltage signals will be described in the following text.

In the design of the speed and rotor resistance observer, the observer design is based on a technique for speed sensorless torque control of an electric motor. The motor dynamic equations (3) and (4) can be rewritten as follows: $\begin{matrix} {{\frac{i_{s}}{t} = {{{- \gamma}\quad i_{s}} + {\beta \quad A\quad \lambda_{r}} + {\delta \quad u}}},} & (7) \\ {{\frac{\lambda_{r}}{t} = {{A\quad \lambda_{r}} + {nMi}_{s}}},\quad {where}} & (8) \\ {{A = {\begin{pmatrix} \eta & \omega_{r} \\ {- \omega_{r}} & \eta \end{pmatrix} = {{\eta \quad I} - {\omega_{r}J}}}},} & (9) \end{matrix}$

and ω_(r)=η_(p)ω (rotor electrical speed).

Differentiating (7) and eliminating λ_(r) results in the following: $\begin{matrix} \begin{matrix} {{\frac{^{2}i_{s}}{t^{2}} + {\gamma \frac{i_{s}}{t}} - {\delta \frac{u}{t}}} = \quad {{\eta \left\{ {{\left( {{{\beta\eta}\quad M} - \gamma} \right)i_{s}} - \frac{i_{s}}{t} + {\delta\mu}} \right\}} -}} \\ {\quad {\omega_{r}J{\left\{ {{\left( {{{\beta\eta}\quad M} - \gamma} \right)i_{s}} - \frac{i_{s}}{t} + {\delta\mu}} \right\}.}}} \end{matrix} & (10) \end{matrix}$

Equation (10) can be represented as follows:

a+Jb·ω _(r)=0  (11)

where a and b are 2-vectors: $\begin{matrix} {{a = {{\left\{ {\frac{^{2}}{t^{2}} + {\left( {\gamma + \eta} \right)\frac{}{t}} - {\eta \left( {{{\beta\eta}\quad M} - \gamma} \right)}} \right\} i_{s}} - {\delta \left\{ {\frac{}{t} + \eta} \right\} u}}},} & (12) \\ {b = {{\left\{ {{- \frac{}{t}} + \left( {{{\beta\eta}\quad M} - \gamma} \right)} \right\} i_{s}} - {\delta \quad {u.}}}} & (13) \end{matrix}$

Observing that Equations (12) and (13) are linear with respect to rotor time constant η, Equation (10) is transformed to: $\begin{matrix} {{{a^{\prime} + {{Jb} \cdot \omega_{r}} - {\eta \quad b}} = 0},\quad {where}} & (14) \\ {a^{\prime} = {{\left\{ {\frac{^{2}}{t^{2}} + {\gamma \frac{}{t}}} \right\} i_{s}} - {\delta \frac{}{t}{u.}}}} & (15) \end{matrix}$

Thus, second order linear algebraic system (14) with respect to ω_(r) and ρ is obtained. The solution of system (14) is given by the following formulas: $\begin{matrix} {{\omega_{r} = \frac{b^{\prime}{Ja}^{\prime}}{{b}^{2}}},\quad {and}} & (16) \\ {\eta = {\frac{b^{\prime}a^{\prime}}{{b}^{2}}.}} & (17) \end{matrix}$

Equations (16) and (17) contain derivatives of the current and voltage signals and cannot be used directly to determined rotor speed and rotor time constant. Following the teachings in the paper of Bondarko and Zaremba mentioned in the preceding background art discussion, the filtered versions of the current and voltage signals are introduced as follows: $\begin{matrix} {{{\left( {\frac{}{t} + G} \right)^{2}i_{s0}} = i_{s}},{{\left( {\frac{}{t} + G} \right)^{2}u_{0}} = u},} & (18) \end{matrix}$

where filter constant G>0.

These lead to the following speed and rotor time constant observer: $\begin{matrix} {\hat{\omega_{r}} = \frac{b_{G}^{t}{Ja}_{G}^{\prime}}{{b_{G}}^{2}}} & (19) \\ {{\hat{\eta} = \frac{b_{G}^{t}a_{G}^{\prime}}{{b_{G}}^{2}}},} & (20) \end{matrix}$

where

a′ _(G) =i _(s2) +γi _(s1) −δu ₁  (21)

 b _(G) =−i _(s1) +δR _(s) i _(s0) +δu ₀.  (22)

The derivatives

i _(s1) =di _(s0) /dt, i _(s2) =d ² i _(s0) /dt ² , u _(s1) =du _(s0) /dt  (23)

now can be determined as a solution of the following equations: $\begin{matrix} {{{\left( {\frac{}{t} + G} \right)^{2}i_{s\quad 1}} = {{i_{s}}/{t}}},{{\left( {\frac{}{t} + G} \right)^{2}u_{1}} = {{u}/{t}}},} & (24) \end{matrix}$

The observers (19) and (20) are well defined and have only a singular point, b_(G)=0, when electrical excitation frequency is equal to zero (ω_(e)=0). But from (21) it follows that vector a′_(G) has a slight dependence on η; namely, γ=δ(R_(s)+M²η/L_(r)). Usually, the second term in brackets is small compared to R_(s), and dependence of γ on η is weak. Nevertheless, Equation (14) can be modified to exclude η from a′; i.e.,

a″+Jb·ω _(r) −ηb′=0,  (25)

where $\begin{matrix} {{a^{''} = {{\left\{ {\frac{^{2}}{t^{2}} + {\delta \quad R_{s}\frac{}{t}}} \right\} i_{s}} - {\delta \frac{}{t}u}}},\quad {and}} & (26) \\ {b^{\prime} = {{\left\{ {{{- \left( {1 + {\delta \frac{M^{2}}{L_{r}}}} \right)}\frac{}{t}} - {\delta \quad R_{s}}} \right\} i_{s}} + {\delta \quad {u.}}}} & (27) \end{matrix}$

The observer based on (25) is as follows: $\begin{matrix} {\hat{\omega_{r}} = \frac{b_{G}^{\prime \quad t}{Ja}_{G}^{''}}{\left( {b_{G}^{t} \cdot b_{G}^{\prime}} \right)}} & (28) \\ {\hat{\eta} = {\frac{b_{G}^{t} \cdot a_{G}^{''}}{\left( {b_{G} \cdot b_{G}^{\prime}} \right)}.}} & (29) \end{matrix}$

The analysis of the singular points for Equations (28) and (29) is more complicated. It involves also the zeros of vector (27) and the situation when vectors b and b′ are orthogonal.

In the case in which the rotor speed is measurable, the rotor time constant can be estimated from (25) in a different way, i.e., $\begin{matrix} {\hat{n} = {\frac{b_{G}^{\prime \quad t} \cdot a_{G}^{''}}{{b_{G}^{1t}}^{2}} + {\omega_{r}{\frac{b_{G}^{\prime \quad t}{Jb}_{G}}{{b_{G}^{\prime}}^{2}}.}}}} & (30) \end{matrix}$

The observer (30) is more robust since its denominator is positive. It includes only singularities of vector b′, and it is suitable for rotor time constant adjustment during motor operation with a conventional field oriented controller.

The system model can be demonstrated in a Xmath/SystemBuild graphical environment. It includes as its main elements an engine model, emulation of the user graphical interface, and an induction motor model block. The later incorporates the speed sensor model, speed active damping controller, power limiter, field oriented controller, PWM model, induction motor model, pseudo voltage and current observers, speed and rotor time constant observer, and flux observer. The simulation was performed for speed active damping during idle conditions ω_(m) ^(ref)=80 rad/sec.

The motor parameters used in the simulation are given in the following table:

R_(s) R_(r) M L_(1r) L_(1s) 0.11 0.087 0.00081 0.0011 0.0011

FIG. 1 shows the overall speed sensorless control system with resistance estimation.

The typical hardware setup is given in FIG. 2 where the starter/alternator is used as a source of additional control torque to combine propulsion function with alternator and active flywheel operation.

FIG. 3a shows torque generated by the engine, which may be a 2.0 L diesel engine. The plot in FIG. 3b shows the motor control torque command for active engine speed damping. The controller is a classical second order lead compensator.

FIGS. 4a and 4 b show speed and rotor time constant estimation for the idle condition. After some transient, the speed is regulated around the ω_(m) ^(ref)=80 rad/sec., as seen in FIG. 4a. The speed observer filter bandwidth is selected at 100 Hz because of the noise concern; and because of this, the speed estimate lags the real value during fast speed changes, which is around 50 Hz in the case of FIG. 4a.

FIG. 4b shows rotor time constant estimation when real values of the rotor resistance are modeled as a step function with 100% variation. The estimates track the modeled values well despite heavy pulsation in speed and, consequently, in the pseudo voltage and current signals.

Additional filtering of the rotor constant estimate is selected at 2 Hz. This regulates the transient of the estimate and amplitude of pulsation at steady state conditions.

Equations (11), (25) are a basis for the observer design. Therefore, $\begin{matrix} {{\hat{\omega_{r}} = \frac{b_{G}^{T}{Ja}_{G}}{{b_{G}}^{2}}},{\hat{\eta} = \frac{b_{G}^{T}a_{G}^{''}}{b_{G}^{T}b_{G}^{\prime}}},} & (31) \end{matrix}$

where

a _(G) =i _(s2)+(γ+{circumflex over (η)})i _(s1) +{circumflex over (η)}δR _(s) i _(s0) −δu _(s1) −δηu _(s0),  (32)

b _(G) =−i _(s1) −δR _(s) i _(s0) +δu _(s0),  (33)

a″ _(G) =i _(s2) +δR _(s) i _(s1) −δu _(s1),  (34)

and $\begin{matrix} {b_{G}^{\prime} = {{{- \left( {1 + {\delta \frac{M^{2}}{L_{r}}}} \right)}i_{s\quad 1}} - {\delta \quad R_{s}i_{s\quad 0}} + {\delta \quad {u_{s\quad 0}.}}}} & (35) \end{matrix}$

Due to the strong noise components they may contain during the real time motor control and the possible singularities when switching the mode of operation, the filtered rotor speed and slip gain estimates (31) are not used directly. Instead, approximations of ω and η can be obtained using a simple gradient algorithm,

{circumflex over (ω)}_(n+1)={circumflex over (ω)}_(n)−ε_(ω)sign(D _(1n){circumflex over (ω)}_(n) −N _(1n))sign(D _(1n)),  (36)

and

 {circumflex over (η)}_(n+1)={circumflex over (η)}_(n)−ε_(η)sign(D _(2n){circumflex over (η)}_(n) −N _(2n))sign(D _(2n)),  (37)

where N_(1n)=N₁ (nΔ), D_(1n)=D₁ (nΔ), N_(2n)=N₂ (nΔ), D_(2n)=D₂ (nΔ), and

N ₁ =b _(G) ^(T) Ja _(G),  (38)

D ₁ =|b _(G)|²,  (39)

N ₂ =b _(G) ^(T) a″ _(G),  (40)

D ₂ =b _(G) ^(T) b′ _(G).  (41)

The algorithms (36)-(37) are implemented in an Xmath/SystemBuild graphical environment and are illustrated in FIGS. 5-8. The C code is then generated by using the Xmath Autocode tool.

FIGS. 9-10 show the rotor speed pulsations due to engine combustion, but the algorithm provides reasonable quality estimates despite the original assumption that speed varies slowly. The rotor time constant estimates converge to the values that are consistent with the data of FIGS. 9-10.

In summary, the invention comprises a control strategy for torque control of an electric motor with speed and rotor time constant estimation based on pseudo current and voltage signals. The rotor time constant estimate is then obtained as a solution of a system of algebraic equations with calculated pseudo signals and their observable derivatives as inputs.

The invention provides accurate real-time estimation of the rotor time constant in a speed sensorless mode of operation. It can be also used for real-time tuning of an electric motor when a speed signal is available.

While the best mode for carrying out the invention has been described in detail, those familiar with the art to which this invention relates will recognize various alternative designs and embodiments for practicing the invention without departing from the scope of the invention. All such alternative designs and embodiments, and equivalents thereof, are intended to be within the scope of the following claims. 

What is claimed is:
 1. A method and strategy for estimates of rotor resistance and speed for torque control of an electric induction motor, the motor having a stationary stator with pole pairs in a frame surrounding a rotor wherein only stator current and stator voltage are measurable, the method and strategy comprising the steps of: computing a rotor slip gain as a function of a measurable stator current and a stator voltage; estimating rotor speed; computing orientation and magnitude of rotor flux as a function of stator current, estimated speed and rotor slip gain; and computing a rotor slip speed as a function of slip gain; calculating electrical rotor speed as a function of the number of pole pairs, estimated rotor speed and rotor slip speed.
 2. The method and strategy set forth in claim 1 wherein slip gain is equal to rotor resistance divided by rotor inductance γ.
 3. The method and strategy set forth in claim 1 wherein the estimation of rotor speed comprises the step of computing quotient of term b_(G) ^(t)Ja′_(G) and term |b_(G)|², where b_(G) ^(t)=−i_(s1)+δRsi_(s0)+δu₀, (i_(s1)=first pseudo derivative of stator current)+δR_(s)i_(s0)+δu₀, a′_(G)=i_(s2)+γi_(s1)−δu₁ (i_(s2)=second pseudo derivative of stator current)+γi_(s1)−δu₁ (first pseudo derivative of stator voltage), J is the skew matrix $\begin{pmatrix} 0 & {- 1} \\ 1 & 0 \end{pmatrix}.$


4. The method and strategy set forth in claim 3 wherein slip gain is estimated using the step of computing the quotient of the term b_(G) ^(t)Ja′_(G) and the term |b_(G)|², where b_(G) ^(t)=−i_(s1)+δR_(s)i_(s0)+δu₀, a′_(G)=i_(s2)+γi_(s1)−δu₁.
 5. The method and strategy set forth in claim 3 wherein the estimate of rotor speed comprises the step of obtaining a filtered current and a filtered voltage for the stator from which pseudo derivative values for stator current (i_(s1)) and voltage (u₁) ${{\left( {\frac{}{t} + G} \right)^{2}i_{s0}} = i_{s}},{{\left( {\frac{}{t} + G} \right)^{2}u_{0}} = u}$

 i _(s1) =di _(s0) dt, i _(s2) =d ² i _(s0) /dt ² , u ₁ =du ₀ /dt, which are solutions of the following equations: ${{\left( {\frac{}{t} + G} \right)^{2}i_{s1}} = {{i_{s}}/{t}}},{{\left( {\frac{}{t} + G} \right)^{2}u_{1}} = {{u}/{t}}},$

 i _(s2) =i _(s)−2Gi _(s1) −G ² i _(s0), where u=stator voltage u₀=filtered stator voltage G=filter constant i_(s)=stator current i_(s0)=filtered stator current i_(s1)=first pseudo derivative of stator current i_(s2)=second pseudo derivative of stator current, and u₁=first pseudo derivative of stator voltage.
 6. The method and strategy set forth in claim 4 wherein the estimate of rotor speed comprises the step of obtaining a filtered current and a filtered voltage for the stator from which pseudo derivative values for stator current (i_(s1)) and voltage (u₁) respectively, are computed as follows: ${{\left( {\frac{}{t} + G} \right)^{2}i_{s0}} = i_{s}},{{\left( {\frac{}{t} + G} \right)^{2}u_{0}} = u}$

 i _(s1) =di _(s0) dt, i _(s2) =d ² i _(s0) /dt ² , u ₁ =du ₀ /dt, which are solutions of the following equations: ${{\left( {\frac{}{t} + G} \right)^{2}i_{s1}} = {{i_{s}}/{t}}},{{\left( {\frac{}{t} + G} \right)^{2}u_{1}} = {{u}/{t}}},$

 i _(s2) =i _(s)−2Gi _(s1) −G ² i _(s0), where u=stator voltage u₀=filtered stator voltage G=filter constant i_(s)=stator current i_(s0)=filtered stator current i_(s1)=first pseudo derivative of stator current i_(s2)=second pseudo derivative of stator current, and u₁=first pseudo derivative of stator voltage. 